package Config;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 注册中心相关配置。
 * 用于描述客户端/服务端与注册中心交互所需的基础参数。
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RegistryConfig {
    /**
     * 注册中心用户名。
     * 可选，某些注册中心（如开启鉴权的 etcd/zookeeper）需要配置。
     */
    private String userName;

    /**
     * 注册中心密码。
     * 可选，和 {@link #userName} 搭配使用。
     */
    private String password;

    /**
     * 注册中心地址。
     * 默认：localhost:2379。
     * 典型格式：host:port，若为集群，可使用外部负载均衡或在实现层支持多地址。
     */
    private String address = "localhost:2379";

    /**
     * 注册中心类别键。
     * 默认："etcd"。应与框架内注册中心类别常量保持一致（如 RegistryCategory.ETCD）。
     */
    private String registry = "etcd";

    /**
     * 连接超时时间，单位：毫秒。
     * 默认：10000。
     */
    private Long timeout = 10000l;
}
